package org.lanqiao.tjut.db;

import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;

import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.lanqiao.tjut.test.MybatisTestDriver;

public class DBDriver {
	// 静态的成员变量

	private static SqlSessionFactory sessionFatory;

	// 右键source 最后一个
	// 单例模式  私有构造方法
	private DBDriver() {
		// 阻止外部new方式的创建实例对象
	}

	// 静态的对外状态接口
	/**
	 * 单例模式获取SqlSessionFactory对象
	 * 
	 * @return sessionFatory
	 */
	public static SqlSessionFactory getNewInstanceSessionFactory() {
		if (sessionFatory == null) {

			// // 创建该对象
			// // 1 获取Mybatis的属性配置文件信息
			// InputStream is =
			// MybatisTestDriver.class.getClassLoader().getResourceAsStream("mybatis-config.xml");
			//
			// // 1.2 获取数据库连接属性的配置文件
			// Properties prop = new Properties();
			// // 加载属性配置文件
			// prop.load(MybatisTestDriver.class.getClassLoader().getResourceAsStream("db.properties"));
			// // 2 获取sqlsessionFactory对象
			// // 静态常量 一旦初始化就常驻内存
			// sessionFatory = new SqlSessionFactoryBuilder().build(is,prop);
			

			// 1 获取Mybatis的属性配置文件信息
			InputStream is = MybatisTestDriver.class.getClassLoader().getResourceAsStream("mybatis-config.xml");
			// 2 获取sqlsessionFactory对象
			sessionFatory = new SqlSessionFactoryBuilder().build(is);
			// 没有处理线程安全，如何处理？

		}
		// 返回该对象
		return sessionFatory;
	}
}
